import {QueryPage} from "@/api/common/type";

// 预算单查询参数
export interface BudgetSheetQuery extends QueryPage {
  projectId?: number; // 项目ID
  customerId?: number; // 客户ID
  personId?: number; // 业务员ID
}

// 预算单数据
export interface BudgetSheet {
  id?: number;
  projectId?: number; // 项目ID
  projectName?: string; // 项目名称
  customerId?: number; // 客户ID
  customerName?: string; // 客户名称
  personId?: number; // 业务员ID
  personName?: string; // 业务员名称
  targetAmount?: number; // 目标金额
  grossMargin?: number; // 毛利率
  saleType?: string; // 销售订单类型
  integratedPlanningType?: string; // 集成规划类型
  projectAnimationVideo?: string; // 项目动画视频
  orderType?: string; // 订单类型1
  orderType2?: string; // 订单类型2
  warrantyPeriodYear?: number; // 质保期(年限)
  otherExpenses?: number; // 其他费用
  nonStandardColorFee?: number; // 非标颜色费
  marketingExpenses?: string; // 营销费用
  paymentCycle?: number; // 付款周期（天）
  proportionReceivedPaymentAmount?: number; // 到货款金额比例（%）
  paymentCycle2?: number; // 付款周期（天）2
  installationAcceptancePaymentRatio?: number; // 安装验收款比例
  warrantyPeriodMonth?: number; // 质保期（月）
  acceptanceTime?: number | string; // 承兑时间（月）
  acceptanceMoney?: number | string; // 承兑金额
  createTime?: string; // 创建时间
  updateTime?: string; // 更新时间
  warrantyMoney?: number; // 质保金
  proportionReceivedPayment?: number; // 到货款金额比例（%）
  installationAcceptancePayment?: number; // 安装验收款比例
  warrantyCost?: number; // 质保金
  acceptanceMoneyCost?: number; // 承兑金额
  salesCommissionAmount?: number;
  salesCommissionAmountRatio?: number;
  preSalesPlanningCommission?: number;
  preSalesPlanningCommissionRatio?: number;
  projectAnimationCommission?: number;
  projectAnimationCommissionRatio?: number;

}

// 创建预算单请求
export interface BudgetSheetCreateDTO {
  projectId: number; // 项目ID
  customerId?: number; // 客户ID
  personId?: number; // 业务员ID
  targetAmount?: number; // 目标金额
  grossMargin?: number; // 毛利率
  saleType?: string; // 销售订单类型
  integratedPlanningType?: string; // 集成规划类型
  projectAnimationVideo?: string; // 项目动画视频
  orderType?: string; // 订单类型1
  orderType2?: string; // 订单类型2
  warrantyPeriodYear?: number; // 质保期(年限)
  otherExpenses?: number; // 其他费用
  nonStandardColorFee?: number; // 非标颜色费
  marketingExpenses?: string; // 营销费用
  paymentCycle?: number; // 付款周期（天）
  proportionReceivedPaymentAmount?: number; // 到货款金额比例（%）
  paymentCycle2?: number; // 付款周期（天）2
  installationAcceptancePaymentRatio?: number; // 安装验收款比例
  warrantyPeriodMonth?: number; // 质保期（月）
  acceptanceTime?: string; // 承兑时间（月）
  acceptanceMoney?: string; // 承兑金额
  warrantyMoney?: number; // 质保金
}

// 更新预算单请求
export interface BudgetSheetUpdateDTO {
  id: number;
  projectId: number; // 项目ID
  customerId?: number; // 客户ID
  personId?: number; // 业务员ID
  targetAmount?: number; // 目标金额
  grossMargin?: number; // 毛利率
  saleType?: string; // 销售订单类型
  integratedPlanningType?: string; // 集成规划类型
  projectAnimationVideo?: string; // 项目动画视频
  orderType?: string; // 订单类型1
  orderType2?: string; // 订单类型2
  warrantyPeriodYear?: number; // 质保期(年限)
  otherExpenses?: number; // 其他费用
  nonStandardColorFee?: number; // 非标颜色费
  marketingExpenses?: string; // 营销费用
  paymentCycle?: number; // 付款周期（天）
  proportionReceivedPaymentAmount?: number; // 到货款金额比例（%）
  paymentCycle2?: number; // 付款周期（天）2
  installationAcceptancePaymentRatio?: number; // 安装验收款比例
  warrantyPeriodMonth?: number; // 质保期（月）
  acceptanceTime?: string; // 承兑时间（月）
  acceptanceMoney?: string; // 承兑金额
  warrantyMoney?: number; // 质保金
}

// 保存历史预算单请求
export interface HistoricalBudgetSheetSaveDTO {
  budgetSheetId: number; // 预算单ID
  projectId: number; // 项目ID
  content: string; // 预算单HTML内容
} 